﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DAL.Entity;


namespace DAL.Persistencia
{
    public class BaseTarifariaDAL
    {

        private NewTierraEntities Con;

        public BaseTarifariaDAL()
        {
            Con = new NewTierraEntities();
        }

        public void Salvar(BaseTarifaria m)
        {
            try
            {
                Con.AddToBaseTarifarias(m);
                Con.SaveChanges();
            }
            catch
            {
                throw;
            }
        }

        public BaseTarifaria ObterPorId(int IdBase)
        {
            try
            {
                return Con.BaseTarifarias.Where(p => p.BaseTarifaria_id == IdBase).SingleOrDefault();
            }
            catch
            {
                throw;
            }
        }

        public void Excluir(BaseTarifaria p)
        {
            try
            {
                Con.DeleteObject(p);
                Con.SaveChanges();
            }
            catch
            {
                throw;
            }
        }

        public void Atualizar(BaseTarifaria novo)
        {
            try
            {
                BaseTarifaria antigo = ObterPorId(novo.BaseTarifaria_id);

                antigo.BaseTarifaria_nome = novo.BaseTarifaria_nome;

                Con.SaveChanges();
            }
            catch
            {
                throw;
            }
        }

        public List<BaseTarifaria> ListarTodos()
        {
            try
            {
                return Con.BaseTarifarias.OrderBy(p => p.BaseTarifaria_nome).ToList();
            }
            catch
            {
                throw;
            }
        }

        public List<BaseTarifaria> ListarTodos(string nome)
        {
            try
            {
                if (nome.Equals(""))
                {
                    return Con.BaseTarifarias.OrderBy(p => p.BaseTarifaria_nome).OrderBy(p => p.BaseTarifaria_nome).ToList();
                }
                else
                {
                    return Con.BaseTarifarias.Where(p => p.BaseTarifaria_nome.Contains(nome)).OrderBy(p => p.BaseTarifaria_nome).ToList();
                }
            }
            catch
            {
                throw;
            }
        }

        public bool ObterPorNome(string nome)
        {
            try
            {
                return Con.BaseTarifarias.Where(s => s.BaseTarifaria_nome.Equals(nome)).Count() != 0;
            }
            catch
            {
                throw;
            }
        }

    }
}
